<?

	require_once('../cnn/conn.php'); 			// -> Conexão com a base de dados
	require_once('../config/funcoes_db.php');   // -> funções com relação à base de dados
	
	

	/* ------------> INSERÇÃO DOS DADOS <------------
	 *
	 * Verificando a qual tabele refere-se para que 
	 * os dados sejam inseridos.
	 */
	 
	 $insert    = "";
	 $insertSQL = "";
	 

	if ( isset($_POST['nome_tabela']) )
	{	
	
		/* Monta a instrução SQL de acordo com a 
		 * tabela passada ( $_POST['nome_tabela'] )
		 */
		switch ( strtolower( $_POST['nome_tabela'] ) ) 
		{
			
			/* sprintf -> Retorna a string formatada. O primeiro parâmetro é a string, 
			 * 			  e os demais são os parâmetros que deverão ser passados (%s, %s, ...)
			 */
			case "secao":
				$insert = " INSERT INTO secao (codSecao, descSecao) VALUES (%s, %s) ";
				$insertSQL = sprintf( $insert,
                       				  valorInserirSQL($_POST['codSecao'], "int"),
                       				  valorInserirSQL($_POST['descSecao']	, "text"));
			break;
			
			case "categoria":
				$insertCateg = " INSERT INTO categoria (codCateg, descCateg) VALUES (%s, %s) ";
				$insertCateg = sprintf( $insertCateg,
							valorInserirSQL($_POST['codCateg']  , "int"),
							valorInserirSQL($_POST['descCateg'] , "text"));
                                
                                // Pré respostas da categotia (tabela N-N)
                                $insertItensCateg = "INSERT INTO categoria_preresposta (codCateg, codPreResp) VALUES ";
                                $values = "";
                                
                                $preResps = split(";", $_POST['codsPreResps']);
                                for ($i = 0; $i < count($preResps) - 1; $i++)
                                {
                                    $values .= sprintf(" (%s, %s) ", 
                                               valorInserirSQL($_POST['codCateg']  , "int"),
                                               valorInserirSQL($preResps[$i]       , "int"));
                                    
                                    if ($i < count($preResps) - 1)
                                    {
                                        $values .= ", ";
                                    }
                                }
                                
                                $insertItensCateg .= " " . $values;
                                
                                // variável a ser passada para o método "inserir"
				$insertSQL = array($insertCateg, $insertItensCateg);
				
				
			break;
			
			case "pergunta":
				
				// SQL de inserção da Pergunta
		
				$insertPerg = " INSERT INTO pergunta (codPergunta, codSecao, codCateg, descPerg, Ordem, PreenObrig, qtdRespostas) 
											  VALUES (%s, %s, %s, %s, %s, %s, %s) ";
				$insertPerg = sprintf( 	$insertPerg,
										valorInserirSQL($_POST['codPergunta']	, "int"),
										valorInserirSQL($_POST['codSecao']		, "int"),
										valorInserirSQL($_POST['codCateg']		, "int"),
										valorInserirSQL($_POST['descPerg']		, "text"),
										valorInserirSQL($_POST['Ordem']			, "int"),
										valorInserirSQL($_POST['PreenObrig']	, "text"),
										valorInserirSQL($_POST['qtdRespostas']	, "text"));
										
				// SQL de inserção das questõs da Pergunta
				$insertAlteran = SQL_insertAltern();
				
				// variável a ser passada para o método "inserir"
				$insertSQL = array($insertPerg, $insertAlteran);
				
			break;
					   
			case "municipio":
				$insert = " INSERT INTO municipio (codMunicipio, nome, uf) VALUES (%s, %s, %s) ";
				$insertSQL = sprintf( 	$insert,
										valorInserirSQL($_POST['codMunicipio']	, "int"),
                       					valorInserirSQL($_POST['nome']			, "text"),
                       					valorInserirSQL($_POST['uf']			, "text"));
			break;
			
			case "entrevista":
				$insert = " INSERT INTO entrevista (codEntrevista, entrevistador, dataEntrev, codMunic, 
													microbacia, codDomicilio, responsavelResid, latitude, 
													longitude, datum, horaInicio, horaTermino, anotacoes
													) 
											VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)";
				$insertSQL = sprintf( 	$insert,
										valorInserirSQL($_POST['codEntrevista']		, "int"),
										valorInserirSQL($_POST['entrevistador']		, "text"),
										valorInserirSQL($_POST['dataEntrev']		, "date"),
										valorInserirSQL($_POST['codMunic']			, "int"),
										valorInserirSQL($_POST['microbacia']		, "text"),
										valorInserirSQL($_POST['codDomicilio']		, "text"),
										valorInserirSQL($_POST['responsavelResid']	, "text"),
										valorInserirSQL($_POST['latitude']			, "text"),
										valorInserirSQL($_POST['longitude']			, "text"),
										valorInserirSQL($_POST['datum']				, "text"),
										valorInserirSQL($_POST['horaInicio']		, "date"),
										valorInserirSQL($_POST['horaTermino']		, "date"),
										valorInserirSQL($_POST['anotacoes']			, "text"));
			break;
			
			case "preresposta":
				$insert = " INSERT INTO preResposta (codPreResp, codCategPreResp, tipo, Descricao) 
											 VALUES (%s, %s, %s, %s) ";
				$insertSQL = sprintf( 	$insert,
										valorInserirSQL($_POST['codPreResp']	 , "int"),
										valorInserirSQL($_POST['codCategPreResp'], "int"),
										valorInserirSQL($_POST['tipo']			 , "text"),
                       					valorInserirSQL($_POST['descricao']		 , "text"));
			break;
			
			case "categpreresp":
				$insert 	= " INSERT INTO categPreResp (codCategPreResp, Descricao) VALUES (%s, %s) ";
				$insertSQL 	= sprintf( 	$insert,
										valorInserirSQL($_POST['codCategPreResp']	, "int"),
                       					valorInserirSQL($_POST['descricao']			, "text"));
			break;
			

		}
	
		//echo $insertSQL . "<br><br>";
		// Inserindo os dados
		if ( isset($_POST["redirectTo"]) )
			executeSQLCommands($insertSQL, $_POST["redirectTo"], $database_conn, $conn);
		else
			executeSQLCommands($insertSQL, ""					, $database_conn, $conn);
		
	}
	
	
	/* Função: SQL_insertAltern
	 * 
	 * Descrição: Monta o comando de inserção SQL para inserir 
	 * 			  as questões da pergunta que está sendo inserida
	 * 
	 * Retorno:   String SQL
	 *
	 * Autor: Alexandre Varizi Ribeiro
	 * Data:  			   08/05/2012
	 * Última Modificação: 27/06/2012
	 */
	function SQL_insertAltern() 
	{
		
		$codPerg = valorInserirSQL($_POST['codPergunta'], 'int');
		$insertAltern 	= "";
		
		$descAcao  = "";
		$valorAcao = "";
		
		$arrTipoElemento 	= $_POST['tipoElemento'];
		$arrDescAlternativa = $_POST['descAlternativa'];
		$arrTipo 			= $_POST['tipo'];
		$arrTamanho 		= $_POST['tamanho'];
		$arrOrdemAltern		= $_POST['ordemAltern'];
		$arrAcao_seMarcada 	= $_POST['acao_seMarcada'];
		$arrAcao_seValor 	= $_POST['acao_seValor'];
		$arrDescAcao        = $_POST['descAcao'];
		$arrValorAcao       = $_POST['valorAcao'];
		$arrMascara 		= $_POST['mascara'];
		$arrPosicao			= $_POST['posicao'];
		
		
		$insertAltern = " INSERT INTO alternativa (codPergunta,  tipoElemento, descAlternativa, tamanho, 
												   tipo, ordem,  mascara,  acao_seMarcada, acao_seValor, posicao,
												   descAcao, valorAcao) 
										   VALUES ";
													
		for ($i = 0; $i < count($arrTipoElemento); $i++)
		{
			
			if ($arrAcao_seMarcada != "" || $arrAcao_seMarcada != "PROX_Q" || $arrAcao_seMarcada != "PROX_S" ||
				$arrAcao_seValor   != "" || $arrAcao_seValor   != "PROX_Q" || $arrAcao_seValor   != "PROX_S")
			{
				$descAcao = $arrDescAcao[$i];
			} 
			
			if ($arrAcao_seValor != "")
			{
				$valorAcao = $arrValorAcao[$i];
			}
					
			$insertSQL = sprintf(" (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) ",
						   valorInserirSQL($codPerg					, "int"),
						   valorInserirSQL($arrTipoElemento[$i]		, "text"),
						   valorInserirSQL($arrDescAlternativa[$i]	, "text"),
						   valorInserirSQL($arrTamanho[$i]			, "int"),
						   valorInserirSQL($arrTipo[$i]				, "text"),
						   valorInserirSQL($arrOrdemAltern[$i]		, "int"),
						   valorInserirSQL($arrMascara[$i]			, "text"),
						   valorInserirSQL($arrAcao_seMarcada[$i]	, "text"),
						   valorInserirSQL($arrAcao_seValor[$i]		, "text"),
						   valorInserirSQL($arrPosicao[$i]			, "text"),
						   valorInserirSQL($descAcao				, "text"),
						   valorInserirSQL($valorAcao				, "text"));
						   
			if ( $i < count($arrTipoElemento) - 1 )
			{
				$insertSQL .= ", ";
			}
			
			$insertAltern .= " " . $insertSQL;
		}
			
		
		return $insertAltern;								
	}
	

?>